import Vue from "vue";
import XLSX from "xlsx";

//导入
// file是传进来excel文件
const getExcelFileData = (file) => {
    var excelData = [];

    //声明一个文件读取器
    const fileReader = new FileReader()

    //文件读取成功时触发事件
    fileReader.onload = ev => {

        try {

            //读取的文件
            const data =
                ev.target.result

            //以二进制流方式读取得到整份excel表格
            const workbook = XLSX.read(data, { type: 'binary' })

            // 循环遍历excel的sheet
            Object.keys(workbook.Sheets).forEach((sheet, index) => {

                console.info(workbook.Sheets[sheet]['!ref'])

                excelData.push(

                    //将excel 转换成json对象放入数组中
                    ...XLSX.utils.sheet_to_json(workbook.Sheets[sheet])

                )

            })

            // 自定义事件，比如校验excel数据。转换数据格式…
            // checkingExcelData(excelData)

        } catch (e) {
            console.err('文件类型不正确')
        }
    }
    //读取文件
    fileReader.readAsBinaryString(file)
};

// 导出
const outputXlsxFile = (data, header,
    xlsxName) => {

    const ws = XLSX.utils.json_to_sheet(data, header)
    const wb = XLSX.utils.book_new()
    XLSX.utils.book_append_sheet(wb, ws, xlsxName)
    XLSX.writeFile(wb, xlsxName + ".xlsx")

}

Vue.prototype.$outputXlsxFile = outputXlsxFile;
Vue.prototype.$getExcelFileData = getExcelFileData;
